#ifndef _TYPES_H
#define _TYPES_H

#include <cstdint>

#ifdef CONFIG_ISA64
    typedef uint64_t UInt;
    typedef  int64_t SInt;
    typedef __uint128_t UIntD;
    typedef  __int128_t SIntD;
    #define UINT_UPPER UINT64_MAX
#elif CONFIG_ISA32
    typedef uint32_t UInt;
    typedef  int32_t SInt;
    typedef uint64_t UIntD;
    typedef  int64_t SIntD;
    #define UINT_UPPER UINT32_MAX
#else
    typedef  uint8_t UInt;
    typedef   int8_t SInt;
    typedef uint16_t UIntD;
    typedef  int16_t SIntD;
    #define UINT_UPPER UINT8_MAX
#endif

#endif
